82. 删除排序链表中的重复元素 II
82. 删除排序链表中的重复元素 II
Similar Question
leading to the advanced question
Solution Tips
方案一: 双指针
把链表里迭代常用的变量, 看作指针
var deleteDuplicates = function (head) {
// 这次用双指针就合适了, slow 停在不重复的最后一个数上, 用来做删除操作的连接点
// fast 跳过重复的数
if (head === null) return head;
// 加一个虚拟头简化操作
const dummyHead = new ListNode(0);
let prev = dummyHead
dummyHead.next = head;
let cur = head;
while (cur !== null && cur.next !== null) {
if (cur.val === cur.next.val) {
const val = cur.val;
cur = cur.next;
while (cur !== null && cur.val === val) {
cur = cur.next;
}
prev.next = cur;
}
else {
prev = cur;
cur = cur.next;
}
}
return dummyHead.next;
};